/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.mindbox.mueblesalpes.presentacion.compras;

import com.mindbox.mueblesalpes.negocio.entity.Mueble;
import com.mindbox.mueblesalpes.negocio.persistence.ListadoProductosLocal;
import com.mindbox.mueblesalpes.presentacion.sesion.SessionInfo;
import com.mindbox.mueblesalpes.presentacion.utils.ReglasNavegacion;
import com.mindbox.mueblesalpes.presentacion.utils.UtilidadesImages;
import com.mindbox.mueblesalpes.presentacion.utils.UtilidadesSesion;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.context.FacesContext;

/**
 * BackingBean para el manejo de la interfaz de usuario
 * para comprar productos.
 * @author jsanchez
 */
public class CompraBackingBean {

    private SessionInfo sesion;
    @EJB
    private ListadoProductosLocal listadoProductos;

    /** Creates a new instance of CompraBackingBean */
    public CompraBackingBean() {
    }

    /**
     * Metodo que se ejecuta despues de instanciar la clase
     */
    @PostConstruct
    public void init() {
        this.sesion = UtilidadesSesion.verificarSessionInfo();
        UtilidadesImages.agregarFotos(FacesContext.getCurrentInstance(),
                UtilidadesImages.getBeanImageFromMuebles(getMuebles()));
    }

    /**
     * Obtiene los muebles.
     * @return
     */
    public List<Mueble> getMuebles() {
        return listadoProductos.obtenerProductosParaLaVenta();
    }

    /**
     * Metodo que sirve de acción para ver el carrito de compras.
     * @return
     */
    public String verCarrito() {
        return ReglasNavegacion.agregar_al_carrito3.toString();
    }

    /**
     * Metodo que se invoca cuando se selecciona un producto en la página.
     * @return
     */
    public String agregar() {
        return UtilidadesSesion.verificarRedireccionamientoWebAlAgregar(sesion);
    }

    /**
     * Metodo que se invoca cuando se cierra la ventana modal del producto seleccionado.
     * @return
     */
    public String cerrarModal() {
        UtilidadesSesion.getSessionWeb(FacesContext.getCurrentInstance()).setMuebleSeleccionado(null);
        return null;
    }
}